//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//

package com.restaurant.application.customer.support;

import com.google.common.collect.Lists;
import com.nebutown.generation.Convert;
import com.nebutown.generation.PickableBean;
import com.nebutown.generation.basictype.UID;
import java.util.List;
import java.util.stream.Collectors;

public class CustomerData implements PickableBean {
    public static final String FN_ID = "id";
    public static final String FN_CREATETIME = "createTime";
    public static final String FN_MODIFYTIME = "modifyTime";
    public static final String FN_AVATARURL = "avatarUrl";
    public static final String FN_NICKNAME = "nickName";
    public static final String FN_REALNAME = "realName";
    public static final String FN_GENDER = "gender";
    public static final String FN_BIRTHDAY = "birthday";
    public static final String FN_OPENID = "openId";
    public static final String FN_PHONE = "phone";
    public static final String FN_LEVELUID = "levelUid";
    public static final String FN_LEVEL = "level";
    public static final String FN_LEVELNAME = "levelName";
    public static final String FN_NUMBER = "number";
    public static final String FN_QRCODEURL = "qrCodeUrl";
    public static final String FN_QRCODEUID = "qrCodeUid";
    public static final String FN_USABLESCORES = "usableScores";
    public static final String FN_TOTALSCORES = "totalScores";
    public static final String FN_STATE = "state";
    public static final String FN_ADDRESSLIST = "addressList";
    public static final List<String> FIELD_NAMES = Lists.newArrayList(new String[]{"id", "createTime", "modifyTime", "avatarUrl", "nickName", "realName", "gender", "birthday", "openId", "phone", "levelUid", "level", "levelName", "number", "qrCodeUrl", "qrCodeUid", "usableScores", "totalScores", "state", "addressList"});
    private String id;
    private Long createTime;
    private Long modifyTime;
    private String avatarUrl;
    private String nickName;
    private String realName;
    private String gender;
    private String birthday;
    private String openId;
    private String phone;
    private UID levelUid;
    private String level;
    private String levelName;
    private String number;
    private String qrCodeUrl;
    private UID qrCodeUid;
    private Long usableScores;
    private Long totalScores;
    private String state;
    private List<AddressData> addressList;

    public CustomerData(String id, Long createTime, Long modifyTime, String avatarUrl, String nickName, String realName, String gender, String birthday, String openId, String phone, UID levelUid, String level, String levelName, String number, String qrCodeUrl, UID qrCodeUid, Long usableScores, Long totalScores, String state, List<AddressData> addressList) {
        this.setId(id);
        this.setCreateTime(createTime);
        this.setModifyTime(modifyTime);
        this.setAvatarUrl(avatarUrl);
        this.setNickName(nickName);
        this.setRealName(realName);
        this.setGender(gender);
        this.setBirthday(birthday);
        this.setOpenId(openId);
        this.setPhone(phone);
        this.setLevelUid(levelUid);
        this.setLevel(level);
        this.setLevelName(levelName);
        this.setNumber(number);
        this.setQrCodeUrl(qrCodeUrl);
        this.setQrCodeUid(qrCodeUid);
        this.setUsableScores(usableScores);
        this.setTotalScores(totalScores);
        this.setState(state);
        this.setAddressList(addressList);
    }

    public CustomerData() {
    }

    public CustomerData duplicate() {
        CustomerData result = new CustomerData();
        result.id = this.id;
        result.createTime = this.createTime;
        result.modifyTime = this.modifyTime;
        result.avatarUrl = this.avatarUrl;
        result.nickName = this.nickName;
        result.realName = this.realName;
        result.gender = this.gender;
        result.birthday = this.birthday;
        result.openId = this.openId;
        result.phone = this.phone;
        result.levelUid = this.levelUid;
        result.level = this.level;
        result.levelName = this.levelName;
        result.number = this.number;
        result.qrCodeUrl = this.qrCodeUrl;
        result.qrCodeUid = this.qrCodeUid;
        result.usableScores = this.usableScores;
        result.totalScores = this.totalScores;
        result.state = this.state;
        result.addressList = this.addressList == null ? null : (List)this.addressList.stream().map((e1) -> {
            return e1 == null ? null : e1.duplicate();
        }).collect(Collectors.toList());
        return result;
    }

    public String toString() {
        return Convert.toJson(this);
    }

    public String getId() {
        return this.id;
    }

    public void setId(String value) {
        this.id = value;
    }

    public CustomerData withId(String value) {
        this.setId(value);
        return this;
    }

    public CustomerData withId(String value, String defaultValue) {
        this.setId(value == null ? defaultValue : value);
        return this;
    }

    public Long getCreateTime() {
        return this.createTime;
    }

    public void setCreateTime(Long value) {
        this.createTime = value;
    }

    public CustomerData withCreateTime(Long value) {
        this.setCreateTime(value);
        return this;
    }

    public CustomerData withCreateTime(Long value, Long defaultValue) {
        this.setCreateTime(value == null ? defaultValue : value);
        return this;
    }

    public Long getModifyTime() {
        return this.modifyTime;
    }

    public void setModifyTime(Long value) {
        this.modifyTime = value;
    }

    public CustomerData withModifyTime(Long value) {
        this.setModifyTime(value);
        return this;
    }

    public CustomerData withModifyTime(Long value, Long defaultValue) {
        this.setModifyTime(value == null ? defaultValue : value);
        return this;
    }

    public String getAvatarUrl() {
        return this.avatarUrl;
    }

    public void setAvatarUrl(String value) {
        this.avatarUrl = value;
    }

    public CustomerData withAvatarUrl(String value) {
        this.setAvatarUrl(value);
        return this;
    }

    public CustomerData withAvatarUrl(String value, String defaultValue) {
        this.setAvatarUrl(value == null ? defaultValue : value);
        return this;
    }

    public String getNickName() {
        return this.nickName;
    }

    public void setNickName(String value) {
        this.nickName = value;
    }

    public CustomerData withNickName(String value) {
        this.setNickName(value);
        return this;
    }

    public CustomerData withNickName(String value, String defaultValue) {
        this.setNickName(value == null ? defaultValue : value);
        return this;
    }

    public String getRealName() {
        return this.realName;
    }

    public void setRealName(String value) {
        this.realName = value;
    }

    public CustomerData withRealName(String value) {
        this.setRealName(value);
        return this;
    }

    public CustomerData withRealName(String value, String defaultValue) {
        this.setRealName(value == null ? defaultValue : value);
        return this;
    }

    public String getGender() {
        return this.gender;
    }

    public void setGender(String value) {
        this.gender = value;
    }

    public CustomerData withGender(String value) {
        this.setGender(value);
        return this;
    }

    public CustomerData withGender(String value, String defaultValue) {
        this.setGender(value == null ? defaultValue : value);
        return this;
    }

    public String getBirthday() {
        return this.birthday;
    }

    public void setBirthday(String value) {
        this.birthday = value;
    }

    public CustomerData withBirthday(String value) {
        this.setBirthday(value);
        return this;
    }

    public CustomerData withBirthday(String value, String defaultValue) {
        this.setBirthday(value == null ? defaultValue : value);
        return this;
    }

    public String getOpenId() {
        return this.openId;
    }

    public void setOpenId(String value) {
        this.openId = value;
    }

    public CustomerData withOpenId(String value) {
        this.setOpenId(value);
        return this;
    }

    public CustomerData withOpenId(String value, String defaultValue) {
        this.setOpenId(value == null ? defaultValue : value);
        return this;
    }

    public String getPhone() {
        return this.phone;
    }

    public void setPhone(String value) {
        this.phone = value;
    }

    public CustomerData withPhone(String value) {
        this.setPhone(value);
        return this;
    }

    public CustomerData withPhone(String value, String defaultValue) {
        this.setPhone(value == null ? defaultValue : value);
        return this;
    }

    public UID getLevelUid() {
        return this.levelUid;
    }

    public void setLevelUid(UID value) {
        this.levelUid = value;
    }

    public CustomerData withLevelUid(UID value) {
        this.setLevelUid(value);
        return this;
    }

    public CustomerData withLevelUid(UID value, UID defaultValue) {
        this.setLevelUid(value == null ? defaultValue : value);
        return this;
    }

    public String getLevel() {
        return this.level;
    }

    public void setLevel(String value) {
        this.level = value;
    }

    public CustomerData withLevel(String value) {
        this.setLevel(value);
        return this;
    }

    public CustomerData withLevel(String value, String defaultValue) {
        this.setLevel(value == null ? defaultValue : value);
        return this;
    }

    public String getLevelName() {
        return this.levelName;
    }

    public void setLevelName(String value) {
        this.levelName = value;
    }

    public CustomerData withLevelName(String value) {
        this.setLevelName(value);
        return this;
    }

    public CustomerData withLevelName(String value, String defaultValue) {
        this.setLevelName(value == null ? defaultValue : value);
        return this;
    }

    public String getNumber() {
        return this.number;
    }

    public void setNumber(String value) {
        this.number = value;
    }

    public CustomerData withNumber(String value) {
        this.setNumber(value);
        return this;
    }

    public CustomerData withNumber(String value, String defaultValue) {
        this.setNumber(value == null ? defaultValue : value);
        return this;
    }

    public String getQrCodeUrl() {
        return this.qrCodeUrl;
    }

    public void setQrCodeUrl(String value) {
        this.qrCodeUrl = value;
    }

    public CustomerData withQrCodeUrl(String value) {
        this.setQrCodeUrl(value);
        return this;
    }

    public CustomerData withQrCodeUrl(String value, String defaultValue) {
        this.setQrCodeUrl(value == null ? defaultValue : value);
        return this;
    }

    public UID getQrCodeUid() {
        return this.qrCodeUid;
    }

    public void setQrCodeUid(UID value) {
        this.qrCodeUid = value;
    }

    public CustomerData withQrCodeUid(UID value) {
        this.setQrCodeUid(value);
        return this;
    }

    public CustomerData withQrCodeUid(UID value, UID defaultValue) {
        this.setQrCodeUid(value == null ? defaultValue : value);
        return this;
    }

    public Long getUsableScores() {
        return this.usableScores;
    }

    public void setUsableScores(Long value) {
        this.usableScores = value;
    }

    public CustomerData withUsableScores(Long value) {
        this.setUsableScores(value);
        return this;
    }

    public CustomerData withUsableScores(Long value, Long defaultValue) {
        this.setUsableScores(value == null ? defaultValue : value);
        return this;
    }

    public Long getTotalScores() {
        return this.totalScores;
    }

    public void setTotalScores(Long value) {
        this.totalScores = value;
    }

    public CustomerData withTotalScores(Long value) {
        this.setTotalScores(value);
        return this;
    }

    public CustomerData withTotalScores(Long value, Long defaultValue) {
        this.setTotalScores(value == null ? defaultValue : value);
        return this;
    }

    public String getState() {
        return this.state;
    }

    public void setState(String value) {
        this.state = value;
    }

    public CustomerData withState(String value) {
        this.setState(value);
        return this;
    }

    public CustomerData withState(String value, String defaultValue) {
        this.setState(value == null ? defaultValue : value);
        return this;
    }

    public List<AddressData> getAddressList() {
        if (this.addressList == null) {
            this.addressList = Lists.newArrayList();
        }

        return this.addressList;
    }

    public void setAddressList(List<AddressData> value) {
        this.addressList = value;
    }

    public CustomerData withAddressList(List<AddressData> value) {
        this.setAddressList(value);
        return this;
    }

    public CustomerData withAddressList(List<AddressData> value, List<AddressData> defaultValue) {
        this.setAddressList(value == null ? defaultValue : value);
        return this;
    }

    public CustomerData addAddressList(AddressData value) {
        if (this.addressList == null) {
            this.addressList = Lists.newArrayList();
        }

        this.addressList.add(value);
        return this;
    }

    public Object getValueOf(String name) {
        byte var3 = -1;
        switch(name.hashCode()) {
            case -2131635668:
                if (name.equals("levelUid")) {
                    var3 = 10;
                }
                break;
            case -1656412113:
                if (name.equals("levelName")) {
                    var3 = 12;
                }
                break;
            case -1377524046:
                if (name.equals("addressList")) {
                    var3 = 19;
                }
                break;
            case -1249512767:
                if (name.equals("gender")) {
                    var3 = 6;
                }
                break;
            case -1034364087:
                if (name.equals("number")) {
                    var3 = 13;
                }
                break;
            case -1010580219:
                if (name.equals("openId")) {
                    var3 = 8;
                }
                break;
            case -860337847:
                if (name.equals("realName")) {
                    var3 = 5;
                }
                break;
            case -751314811:
                if (name.equals("totalScores")) {
                    var3 = 17;
                }
                break;
            case -428646058:
                if (name.equals("avatarUrl")) {
                    var3 = 3;
                }
                break;
            case -32437447:
                if (name.equals("usableScores")) {
                    var3 = 16;
                }
                break;
            case 3355:
                if (name.equals("id")) {
                    var3 = 0;
                }
                break;
            case 69737614:
                if (name.equals("nickName")) {
                    var3 = 4;
                }
                break;
            case 102865796:
                if (name.equals("level")) {
                    var3 = 11;
                }
                break;
            case 106642798:
                if (name.equals("phone")) {
                    var3 = 9;
                }
                break;
            case 109757585:
                if (name.equals("state")) {
                    var3 = 18;
                }
                break;
            case 1069376125:
                if (name.equals("birthday")) {
                    var3 = 7;
                }
                break;
            case 1211388583:
                if (name.equals("modifyTime")) {
                    var3 = 2;
                }
                break;
            case 1339477442:
                if (name.equals("qrCodeUid")) {
                    var3 = 15;
                }
                break;
            case 1339477729:
                if (name.equals("qrCodeUrl")) {
                    var3 = 14;
                }
                break;
            case 1369213417:
                if (name.equals("createTime")) {
                    var3 = 1;
                }
        }

        switch(var3) {
            case 0:
                return this.getId();
            case 1:
                return this.getCreateTime();
            case 2:
                return this.getModifyTime();
            case 3:
                return this.getAvatarUrl();
            case 4:
                return this.getNickName();
            case 5:
                return this.getRealName();
            case 6:
                return this.getGender();
            case 7:
                return this.getBirthday();
            case 8:
                return this.getOpenId();
            case 9:
                return this.getPhone();
            case 10:
                return this.getLevelUid();
            case 11:
                return this.getLevel();
            case 12:
                return this.getLevelName();
            case 13:
                return this.getNumber();
            case 14:
                return this.getQrCodeUrl();
            case 15:
                return this.getQrCodeUid();
            case 16:
                return this.getUsableScores();
            case 17:
                return this.getTotalScores();
            case 18:
                return this.getState();
            case 19:
                return this.getAddressList();
            default:
                return null;
        }
    }

    public void setValueOf(String name, Object value) {
        byte var4 = -1;
        switch(name.hashCode()) {
            case -2131635668:
                if (name.equals("levelUid")) {
                    var4 = 10;
                }
                break;
            case -1656412113:
                if (name.equals("levelName")) {
                    var4 = 12;
                }
                break;
            case -1377524046:
                if (name.equals("addressList")) {
                    var4 = 19;
                }
                break;
            case -1249512767:
                if (name.equals("gender")) {
                    var4 = 6;
                }
                break;
            case -1034364087:
                if (name.equals("number")) {
                    var4 = 13;
                }
                break;
            case -1010580219:
                if (name.equals("openId")) {
                    var4 = 8;
                }
                break;
            case -860337847:
                if (name.equals("realName")) {
                    var4 = 5;
                }
                break;
            case -751314811:
                if (name.equals("totalScores")) {
                    var4 = 17;
                }
                break;
            case -428646058:
                if (name.equals("avatarUrl")) {
                    var4 = 3;
                }
                break;
            case -32437447:
                if (name.equals("usableScores")) {
                    var4 = 16;
                }
                break;
            case 3355:
                if (name.equals("id")) {
                    var4 = 0;
                }
                break;
            case 69737614:
                if (name.equals("nickName")) {
                    var4 = 4;
                }
                break;
            case 102865796:
                if (name.equals("level")) {
                    var4 = 11;
                }
                break;
            case 106642798:
                if (name.equals("phone")) {
                    var4 = 9;
                }
                break;
            case 109757585:
                if (name.equals("state")) {
                    var4 = 18;
                }
                break;
            case 1069376125:
                if (name.equals("birthday")) {
                    var4 = 7;
                }
                break;
            case 1211388583:
                if (name.equals("modifyTime")) {
                    var4 = 2;
                }
                break;
            case 1339477442:
                if (name.equals("qrCodeUid")) {
                    var4 = 15;
                }
                break;
            case 1339477729:
                if (name.equals("qrCodeUrl")) {
                    var4 = 14;
                }
                break;
            case 1369213417:
                if (name.equals("createTime")) {
                    var4 = 1;
                }
        }

        switch(var4) {
            case 0:
                this.setId((String)value);
                return;
            case 1:
                this.setCreateTime((Long)value);
                return;
            case 2:
                this.setModifyTime((Long)value);
                return;
            case 3:
                this.setAvatarUrl((String)value);
                return;
            case 4:
                this.setNickName((String)value);
                return;
            case 5:
                this.setRealName((String)value);
                return;
            case 6:
                this.setGender((String)value);
                return;
            case 7:
                this.setBirthday((String)value);
                return;
            case 8:
                this.setOpenId((String)value);
                return;
            case 9:
                this.setPhone((String)value);
                return;
            case 10:
                this.setLevelUid((UID)value);
                return;
            case 11:
                this.setLevel((String)value);
                return;
            case 12:
                this.setLevelName((String)value);
                return;
            case 13:
                this.setNumber((String)value);
                return;
            case 14:
                this.setQrCodeUrl((String)value);
                return;
            case 15:
                this.setQrCodeUid((UID)value);
                return;
            case 16:
                this.setUsableScores((Long)value);
                return;
            case 17:
                this.setTotalScores((Long)value);
                return;
            case 18:
                this.setState((String)value);
                return;
            case 19:
                this.setAddressList((List)value);
                return;
            default:
        }
    }

    public boolean hasField(String name) {
        return FIELD_NAMES.contains(name);
    }

    public int hashCode() {
        return this.signature().hashCode();
    }

    public boolean equals(Object o) {
        return !(o instanceof CustomerData) ? false : this.signature().equals(((CustomerData)o).signature());
    }

    public String signature() {
        throw new RuntimeException("Bean CustomerData has no signature defined, no hash code or equals possible.");
    }
}
